perm filename CONCEP.TC[CLS,LSP]12 blob
sn#856832 filedate 1988-05-04 generic text, type T, neo UTF8
!9!!1--1
!0Common Lisp Object System Specification!!1--1
!11. Programmer Interface Concepts!!1--1
!9CONTENTS!!1--2
!2Introduction!!1--3
!2Error Terminology!!1--4
!2Classes!!1--6
!3Defining Classes!!1--7
!3Creating Instances of Classes!!1--8
!3Slots!!1--8
!3Accessing Slots!!1--10
!2Inheritance!!1--11
!3Inheritance of Methods!!1--11
!3Inheritance of Slots and Slot Options!!1--11
!3Inheritance of Class Options!!1--12
!3Examples!!1--13
!2Integrating Types and Classes!!1--14
!2Determining the Class Precedence List!!1--17
!3Topological Sorting!!1--17
!3Examples!!1--18
!2Generic Functions and Methods!!1--20
!3Introduction to Generic Functions!!1--20
!3Introduction to Methods!!1--21
!3Agreement on Parameter Specializers and Qualifiers!!1--23
!3Congruent Lambda-Lists for All Methods of a Generic Function!!1--24
!3Keyword Arguments in Generic Functions and Methods!!1--24
!2Method Selection and Combination!!1--26
!3Determining the Effective Method!!1--26
!4Selecting the Applicable Methods!!1--26
!4Sorting the Applicable Methods by Precedence Order!!1--26
!4Applying Method Combination to the Sorted List of Applicable Methods!!1--27
!3Standard Method Combination!!1--29
!3Declarative Method Combination!!1--30
!3Built-in Method Combination Types!!1--30
!2Meta-Objects!!1--33
!3Metaclasses!!1--33
!3Standard Metaclasses!!1--33
!3Standard Meta-objects!!1--33
!2Object Creation and Initialization!!1--35
!3Initialization Arguments!!1--35
!3Declaring the Validity of Initialization Arguments!!1--36
!3Defaulting of Initialization Arguments!!1--38
!3Rules for Initialization Arguments!!1--38
!3Initialize-Instance!!1--41
!3Initialize-New-Instance!!1--41
!3Procedural Definitions of Make-Instance and Initialize-New-Instance!!1--42
!2Redefining Classes!!1--44
!3Modifying the Structure of Instances!!1--44
!3Initializing Newly Added Local Slots!!1--45
!3Customizing Class Redefinition!!1--45
!3Extensions!!1--45
!2Changing the Class of an Instance!!1--47
!3Modifying the Structure of the Instance!!1--47
!3Initializing Newly Added Local Slots!!1--47
!3Customizing the Change of Class of an Instance!!1--48
!2Reinitializing an Instance!!1--49
!3Customizing Reinitialization!!1--49